   /*1.this指代var变量对象 */
// var pet = {

// 	words : '...',
// 	speak: function(){
// 		console.log(this.words);
// 		console.log(this == pet );
// 	}
// }
// pet.speak();


/* 2.直接运行方法，这里的this指代调用它们的环境对象，在nodejs环境下，this是global对像,在浏览器
中，指的是window对象   */
// function pet(words){

//   this.words = words;

//   console.log(this.words);
//   console.log(this);

//   console.log(this === global);
// }
// pet('...');

/* 3.new 出来的对象，this 是指代这个调用方法的对像*/
function Pet(words){

	this.words = words;
	this.speak = function(){

		console.log(this.words);
		console.log(this);
	}
}
var cat = new Pet('Miao');
cat.speak();

//js函数，包括定义时的上下文和运行时的上下文，并且上下文是可以改变的










